﻿/* Hàm kiểm tra tổng summary_validation */

var IsValid = [false, false, false, false, false, false, true];

/* Hàm điều khiển nút Submit */
$(document).mousemove(function () {
    var x;
    for (x = 0; x < IsValid.length; x++) {
        if (IsValid[x] == false) {
            break;
        }
    }
    if (x == (IsValid.length)) {
        $(":submit").css("visibility", "visible");
    }
    else {
        $(":submit").css("visibility", "hidden");
    }
})

/* Hàm điều khiển nút Reset */

$(":reset").click(function () {
    $(".alert").css("display", "none");
    $(":input").val() = '';    
    IsValid = [false, false, false, false];
})

/* Hàm hiện khung alert */
function show_alert(obj) {
    $(obj).parent().next().css({ "display": "block" });    
}

function hide_alert(obj) {
    $(obj).parent().next().css({ "display": "none" });
}

/* Các hàm validation */
function empty_form(obj) {
    var text_form = $(obj).val();
    if (text_form == '')
        return true;
    else
        return false;
}

function have_whitespace(obj) {
    var text_form = $(obj).val();
    var patt = /\s/g;
    var result = patt.test(text_form);
    return result;
}

function email_valid(obj) {
    var text_form = $(obj).val();
    var a2 = text_form.indexOf("@");
    var dot = text_form.lastIndexOf(".");
    if ( a2 < 1 || dot+2 >= text_form.length || dot < a2+2 ) {
        return false;
    }
    else {
        return true;
    }
}

function different_number(obj) {
    var patt1 = /[^0-9]/;
    var text_form = $(obj).val();
    var result = patt1.test(text_form);
    return result;
}

function change_date(obj) {
    var text_form = $(obj).val();
    var patt = /[^dd/mm/yyyy]/;
    var result = patt.test(text_form);
    return result;
}

function not_match_extension(obj) {
    var text_form = $(obj).val();
    text_form = text_form.toLowerCase();
    var jpg = text_form.lastIndexOf(".jpg");
    var png = text_form.lastIndexOf(".png");
    if (jpg == -1 && png == -1) {
        return true;
    }
    
}
/* Hàm hiện thông báo lỗi */
function show_range_error(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Tên đăng nhập chỉ nhận 4-15 ký tự!");
}
function show_required_error(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Không được bỏ trống!");
}

function show_whitespace_error(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Không chấp nhận khoảng trắng!");
}

function show_email_error(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Email không hợp lệ!");
}

function show_match_password(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Mật khẩu không trùng khớp!");
}

function show_invalid_phonenumber(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Số điện thoại không hợp lệ!");
}

function show_invalid_date(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Chưa nhập ngày sinh!");
}

function show_upload_error(obj) {
    show_alert(obj);
    $(obj).parent().next().children().text("Chỉ chấp nhận định dạng *.jpg | *.png");
}

/* Hàm kiểm tra từng form */
function Test_username(obj) {   
    var text_form = $(obj).val();
    
    if (have_whitespace(obj) == true) {
        show_whitespace_error(obj);
        IsValid[0] = false;
    }
    else if (empty_form(obj) == true) {        
        show_required_error(obj);
        IsValid[0] = false;
    }
    else if (text_form.length<4 || text_form.length>15) {
        show_range_error(obj);
        IsValid[0] = false;
    }
    else {
        hide_alert(obj);
        IsValid[0] = true;
    }
}

function Test_password(obj) {
    if (empty_form(obj) == true) {
        show_required_error(obj);
        IsValid[1] = false;
    }
    else {
        hide_alert(obj);
        IsValid[1] = true;
    }
}

function Test_repeat_password(obj) {
    var re_pass = $("#password").val();
    var text_form = $(obj).val();
    if (text_form != re_pass) {
        show_match_password(obj);
        IsValid[2] = false;
    }
    else {
        hide_alert(obj);
        IsValid[2] = true;
    }
}

function Test_email(obj) {
    if (empty_form(obj) == true) {
        show_required_error(obj);
        IsValid[3] = false;
    }
    else if (have_whitespace(obj)) {
        show_whitespace_error(obj);
        IsValid[3] = false;
    }
    else if (email_valid(obj) == false) {
        show_email_error(obj);
        IsValid[3] = false;
    }
    else {
        hide_alert(obj);
        IsValid[3] = true;
    }
}

function Test_HoTen(obj) {
    if (empty_form(obj) == true) {
        show_required_error(obj);
        IsValid[4] = false;
    }
    else {
        hide_alert(obj);
        IsValid[4] = true;
    }
}

function Test_SDT(obj) {
    var text_form = $(obj).val();
    if (text_form.length < 10 || different_number(obj) == true) {
        show_invalid_phonenumber(obj);
        IsValid[5] = false;
    }           
    else {
        hide_alert(obj);
        IsValid[5] = true;
    }
}

function Test_date(obj) {
    if (change_date(obj) == false) {
        show_invalid_date(obj);
        IsValid[6] = false;
    }
    else {
        hide_alert(obj);
        IsValid[6] = true;
    }
}

function Test_upload(obj) {
    if (not_match_extension(obj) == true) {
        show_upload_error(obj);
        IsValid[7] = false;
    }
    else {
        hide_alert(obj);
        IsValid[7] = true;
    }
}